/**  
 * @Title: SubAccountService.java
 * @Package org.wk.digiccy.service
 * @Description: TODO【】
 * @author df.w 
 * @date 2018年5月9日 下午5:01:01
 * @version V1.0  
 */ 

package org.wk.account.service;

import com.alibaba.fastjson.JSONObject;
import org.wk.core.common.view.ResponseVo;

import java.util.Map;

/**
 * @ClassName	: SubAccountService
 * @Package		：org.wk.digiccy.service
 * @Author df.w 
 * @Create Time	：2018年5月9日 下午5:01:01
 * @Description	: 
 */
public interface SubAccountService {

	
	/**
	 * @Title		: selectSubAccount
	 * @Param		: @return
	 * @Return Type 	：ResponseVo
	 * @Description	: 获取用户账户信息
	 */
	public ResponseVo selectSubAccount();

	/**
	 * @author TangShenShen
	 * @date 2018/5/17 15:41
	 * @param
	 * @return
	 */
	ResponseVo findSubAccoutDetail(String accountType);
	
	
	
	/**
	 * @Title		: registerAccountHandler
	 * @Param		: @return
	 * @Return Type 	：boolean
	 * @Description	: 注册账户变动
	 */ 
	public boolean registerAccountHandler(String userId);
	/**
	 * @Title		: registerAccountHandler
	 * @Param		: @return
	 * @Return Type 	：boolean
	 * @Description	: 推广账户变动
	 */
	public boolean promoteAccountHandler(String userId);
	
	/**
	 * @Title		: loginAccountHandler
	 * @Param		: @param userId
	 * @Param		: @return
	 * @Return Type 	：boolean
	 * @Description	: 登录账户变动
	 */ 
	public boolean loginAccountHandler(String userId);
	
	/**
	 * 校验用户账户数量，每次对账户进行操作的时候都调用这个方法, 当账户类型数量增加的时候也启用这个方法,稳定后不再继续使用
	 * @param userId
	 */
	public void checkAccountNum(String userId);

	/**
	 * 激活vip账户变动
	 * @param userId
	 * @return
	 */
	public boolean vipActivateHandler(String userId);

	/**
	 * 账户变动列表
	 * @param  * @param accountTypeCode
	 * @author TangShenShen
	 * @date 2018/5/17 16:17
	 */
	ResponseVo findSubAccountSeqs(String accountTypeCode, int pageNum, int pageSize);

	/**
	 * 账户变动列表  (用户后台管理系统查询详情用)
	 * @param  * @param accountTypeCode
	 * @author TangShenShen
	 * @date 2018/5/17 16:17
	 */
	ResponseVo getSubAccountSeqs(String userId, String accountTypeCode, int pageNum, int pageSize);

	/**
	 * 账户管理的所选类型账户的变动记录
	 * @author TangShenShen
	 * @date 2018/6/4 14:38
	 */
    ResponseVo selectSubAccountSeqs(String accountType, Map<String, Object> params);
}

